Cache coherency protocols typically require same-address ordering between operations/events from multiple agents to that address in order to maintain hardware-enforced functional correctness. A set of serialization rules and ordering rules triggered by address-hazard detection are also necessary when multiple agents concurrently act on a single cache line. A cache line is an example of a “coherency unit” or “quantum.” The set of serialization rules, which are conventionally enforced by a physical transport, also necessitate a common set of routing rules between agents on the network so that operations/events executed in a temporal order at a source follow the same route in order to reach the destination in the same temporal order.
Coherency protocols also allow for coherency actions from multiple agents, while maintaining functional correctness via serialization and hazard detection. Since hardware-enforced cache-coherency is transparent to software, multiple agents can act on the same coherency-unit, with hardware guaranteeing a functionally correct outcome. The in-order requirements for serialization and hazard detection, concurrent with coherency actions from multiple agents, can create logical and resource dependency loops and hence require that coherency protocols also have built in deadlock avoidance mechanisms.